Human interface input acceleration system

ABSTRACT

A method and system for transmitting data to and from a hand-held host device are disclosed. An accessory device for interfacing with a host device includes a communication channel designed to establish a bidirectional data link between the accessory device and the host device. The accessory device also includes a storage unit communicatively coupled to the communication channel. The storage unit is designed to store various data. In addition, at least a first data is selectively transmitted from the stored data of the accessory device to the host device through the established bidirectional data link.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.12/689,207, filed Jan. 18, 2010 which is a continuation of U.S. patentapplication Ser. No. 11/519,455 (now U.S. Pat. No. 7,649,522), filedSep. 11, 2006, which is a continuation-in-part of U.S. patentapplication Ser. No. 11/249,009 (now U.S. Pat. No. 7,280,097), filedOct. 11, 2005, the entire contents of which are considered part of (andare hereby incorporated by reference in) the disclosure of thisapplication. This application is also related to U.S. patent applicationSer. No. 10/699,555, filed on Oct. 31, 2003 (now U.S. Pat. No.7,218,313) and U.S. patent application Ser. No. 11/221,412, filed Sep.6, 2005 (now U.S. Pat. No. 7,669,770).

BACKGROUND

The following description relates to hand-held input accelerationdevices for interfacing with electronic devices, such as cellularphones, personal digital assistants (“PDAs”), pocket personal computers,smart phones, hand-held game devices, bar code readers, MP3 players andother similar input devices having a keypad or one or more inputelements, and also relates to human interface and input systems for usewith the hand-held acceleration devices.

Electronic devices have become increasingly sophisticated and physicallysmaller due in part to a decrease in the price of processing power and aconcurrent increase in demand by consumers for smaller devices. Suchdevices, however, tend to be limited in function and utility by theuser's ability to interface with the device for data input (e.g., text,numeric, and functional input) and/or device control, which becomesincreasingly more difficult to do as the available space on the device'ssurface for positioning the input elements, which are used for datainput and/or device control, continues to decrease.

Moreover, as the use of applications such as text centric applications(e.g., inputting data for e-mail, instant messaging, SMS, and MMS),navigation applications (e.g. 1-D navigation such as scrolling down along list of songs to choose a song, or 2D navigation, such as moving ona data page or map), and game applications (e.g. steering a car in afirst person driving game) increases, the keypad on electronic devices,such as a cellular phone, is increasingly becoming a bottleneck tospeed, accuracy and ease of data entry, playing games, picking itemsfrom long lists, web browsing, and launching applications.

For example, many hand-held electronic devices, in particular cellularphones, typically use a D-pad as the primary way to navigate up and downa list of items, such as a list of songs, on an item-by-item basis. Suchitem-by-item scrolling, however, is typically inefficient in navigatingfrom the first item in the list to the last item in the list, especiallyif the list includes hundreds of items. Although most of theseelectronic devices provide the user with page up and page downfunctionality, which permits the user the scroll a number of items atonce, e.g., some applications may associate ten items per page, oftentimes such page up and page down functionality must be executed throughmultiple taps or presses of one or more input elements, typically thosemaking up the keypad. The particular number of taps or number of inputelements required to evoke such page up and down functionality typicallydepends on the application developer's preference, and therefore oftendiffer from application to application within the same electronicdevice. Also, the location of the page up/page down keys is notstandardized, and thus requires a user to memorize the location for eachindividual application. Even the same application may be implementedusing different user interfaces in different hand-held electronicdevices.

Various human interface and input systems and techniques for hand-heldelectronic devices have been developed for data input and devicecontrol. These include miniature keyboards and keypads used incombination with chordal input techniques, modal input techniques and/orsmart keys; and touch screens used in combination with on-screenkeyboard or keypad software or hand-writing recognition software.Additionally, for gaming, some hand-held electronic devices, such ascellular phones, have incorporated miniature thumb joysticks on the faceof the device itself in lieu of the directional navigation pad (D-pad).

Keyboard or Key Pad Used with Chordal, Modal and Smart Key Techniques

Miniature keyboards and keypads are similar to their standard full-sizeversions—i.e., a keyboard generally has a full set or substantially fullset of numeric, character, and functional input elements, while key padstypically have a reduced set of numeric, character and/or functionalinput elements compared to keyboards. These miniature input devicestypically are designed to fit the available space on one surface of ahand-held electronic device or are designed as small, easilytransportable, external plug-in devices. Thus, as hand-held electronicdevices become smaller, the size of the input elements typically hasbeen reduced in order for the desired number of input elements to fit onone surface of the electronic device.

For data input and device control, miniature keyboards and keypadstypically either require one of two input techniques—use of one or morethumbs or fingers to press the desired input elements or use of a stylusto “peck” the desired input elements (which is usually done where theinput element is of smaller size). Various techniques, such as chordalinput techniques, modal input techniques and smart keys, have beendeveloped and implemented to improve the efficiency and effectiveness ofusing miniature keyboards and keypads.

Chordal Input Techniques

Chordal input techniques generally are based upon the principle thatcharacters, symbols, words, phrases or concepts can be represented by areduced set of input elements. Thus, by only having to press a reducedcombination of input elements, functionality can be increased andquicker and more accurate data input can be realized. Chordal inputtechniques can be used on any keyboard or keypad configuration or anydevice having more than one input element, and typically results infewer input elements or more functions compared to conventionalkeyboards or keypads. An example of an electronic device usingtwo-handed chordal input techniques is a court reporter orstenographer's typewriter. One chordal input technique using a keypad todecrease the number of actuations to achieve a large number of functionsis described in U.S. Pat. No. 5,973,621 to Levy, entitled “Compact KeyedInput Device”, which is incorporated herein by reference.

Modal Input Techniques

Modal input techniques are based on the concept that functions of theelectronic device, e.g., text messaging in a cell-phone or PDA, can beaccessed by pressing a particular input element (or combination ofelements) on a keyboard or keypad. Once that particular input element ispressed, the functionality of all or a portion of the input elements onthe keyboard or keypad may change. Modal techniques typically are usedin calculators, cellular phones, and PDAs. For example, in cellularphones, a modal technique called multi-tap is common, in whichindividual input elements on the keypad are associated with multiplesymbols, such as characters, letters, numbers, icons or other types ofsymbols, which tends to reduce the number of input elements required toachieve the desired functions, e.g., a twelve-input-element keypad canbe used to represent all letters of the English alphabet and the decimaldigits. A user can input a desired symbol within a set of symbolsassociated with a certain input element by tapping on that particularinput element with a thumb, finger, or stylus, one or more times toinput the desired character. Thus, if a user desires to send a textmessage, the user may press a functional input element, e.g., a modekey, to access the text messaging functionality of the cellular phoneand then tap an individual input element one or more times to select theassociated symbol for input. The number of taps needed to input aparticular symbol may differ depending on the language character setchosen. For example, Japanese keypad or keyboards typically require aminimum set of 46 characters for text input, while English or Americankeyboards and keypads usually require a minimum set of 26 characters fortext input. These modal input techniques have gained some popularity asusers perform more text functions, but these techniques can becumbersome because to access some letters or characters, an inputelement on the keypad may have to be tapped three or four times. Also,in hand-held devices with a keypad, such as a cellular phone, thesemodal input techniques typically rely on the user's thumb, which is notgenerally as dexterous as the user's fingers.

Smart Keys

Smart keys are typically used on keypads and refer to a single key orcombination of keys that, when pressed, predict the users next logicalaction. Some implementations work better than others and someapplications reduce the number of keystrokes required to complete afunction better than others. Word-predictor software, for example,attempts to predict the word or character the user intends to inputbased upon one or more letters inputted by the user and the likelyprobabilities within a given language. The probability of the softwareguessing correctly increases with the length of the word or number ofletters or characters inputted. In a device using smart keys on thekeypad, a user may tap the keys 2, 2 and 8 in sequence to generate theword “cat” and the device would display that word first because it isusually the most common combination, whereas the word “bat”, which canbe generated by pressing the same keys, would not be displayed firstbecause it is not as common. Also, the word “cat” may be displayed afterpressing the 2 key the second time based on a guess by theword-predictor software.

Smart keys also are typically used for Japanese data input where a userphonetically inputs letters representing the sound of the Japanesecharacter (e.g., a Kanji character). Based on the inputted letters, thepredictor software guesses the Japanese character. To select thecharacter, a user would press the accept button or use the scrollingfunction to go to the next character with a similar set of phoneticinputs.

Touch Screen Using on-Screen Keyboard or Handwriting RecognitionSoftware

Using on-screen keyboard or keypad software with a touch screen offersusers the ability to enter data with fingers or thumbs on a screen-sizedkeyboard or buttons, allowing faster data input without a stylus orphysical keyboard or keypad accessory; while using handwritingrecognition software with a touch screen, such as GRAFFITI™ on the Palmoperating system, offers users the ability to enter text with a stylusby writing the text directly on the touch screen. Touch screens usuallyconsume more power and are more expensive than non touch-sensitivescreens. This higher power consumption can be a problem for hand-heldelectronic devices, which typically have limited power resources.Moreover, touch screens usually require the user to use both hands(e.g., one hand is used to hold and steady the device while the otherhand is used to grasp the stylus), which is generally undesirable forinterfacing with and controlling one handed hand-held electronic device,such as cellular phones. Handwriting recognition software has improvedthe slowness and awkwardness inherent in stylus, finger or thumb inputbut other drawbacks still remain, such as high power consumption, thenecessity to use both hands, and lack of tactile feedback to inform auser when an input element has been. Moreover, recognition softwarerequires training to use properly, and, even then, still results in ahigh error rate.

Game Control

For game control, many of the above approaches have been used, but inmost hand-held electronic devices, a user typically controls game playthrough the use of some form of input element, such as on a miniaturekeypad and/or D-pad, which typically is located on the front surface ofthe device. Game control on some hand-held electronic devices, such ascellular phones, is inherently one handed or at most two thumbed becauseof the size of the device, while game control on other hand-heldelectronic devices, such as PDAs and conventional game consolecontrollers, is typically two-handed. The input elements associated withgame control on these devices are typically digital, particularly theD-pad, even though analog input elements have been used on gamecontrollers for PC and console game systems, such as Microsoft's Xbox orSony's Play Station 2.

Transferring Data to and from a Mobile Device

Transferring applications and content to and from a mobile device cantypically be accomplished through various provisioning methods. Forexample, content stored on a personal computer (PC) can be transferredto a mobile device using a conventional data cable physically pluggedinto a conventional communication port (e.g., a Universal Serial Bus(USB)). If both the PC and the mobile device support wirelesscommunication (e.g., Bluetooth), the transfer can be performedwirelessly between the PC and the mobile device. Typically, such wiredor wireless transfer between the PC and the mobile device often requireadditional connectivity software.

Alternatively, an end user can download applications or content (e.g.,ring tones, games, images, etc.) from a cellular carrier's web portalonto the mobile device. The end user can use a PC to visit the webportal and purchase an application or content. Typically, once the enduser purchases an application or content for download, a download linkis sent to the end user's mobile device via a Short Message Service(SMS) text message. Then the end user can click on the link to completethe download process through the over-the-air provisioning process. Aperiod of long delay can occur between the time the end user purchasesthe application or content, and the time the end user r the applicationor content. The download and installation process may be subject toadditional data fees from the carrier, and the success of the downloadis often subject to the presence and quality of cellular coverage for aparticular carrier. The end user can also download the application orcontent directly onto the mobile device if the mobile device supportssuch a feature. For example, a simple Wireless Application Protocol(WAP) interface with a simple search engine can be used to presentcontent to the end user. The end user can then search for the desiredapplication or content and purchase it directly from the mobile device.

An emerging content provisioning method allows users to send an SMS textmessage to an advertised number (typically 5 digits long, as opposed to10-digit phone numbers in the United States), with an alphanumerickeyword indicating the desired content. The content provider then sendsa link back to the user via SMS, which can be clicked to downloadcontent. This method is increasingly popular for distributing off-portalcontent. The SMS code and keyword are often advertised in magazines orweb sites.

SUMMARY

The present inventors recognized that conventional human interface andinput systems for hand-held electronic devices tended to be relativelyinflexible, cumbersome, and inefficient to use, among other reasons,because they were not designed to take advantage of the biomechanics ofthe human hand, particularly the advantages associated with theopposition of the thumb to the fingers and the beneficial attributes ofthe thumb, e.g., its large range of motion and ability to impart largesustained forces, and the beneficial attributes of the fingers, e.g.,their fine motor control, spatial memory and rapidity of motion.

The present inventors also recognized that the input techniquesdeveloped to improve the efficiency of data input and device control,such as chordal and modal techniques, were limited by the inefficienciesinherent in conventional input systems. For example, miniature keyboardsand keypads used in combination with chordal input techniques not onlyrequired the user to memorize numerous input combinations and developthe necessary motor skills to control a reduced number of input elementsto provide even more complex functionality compared to typical QWERTYkeyboards, but also did not use or allocate input tasks to the fingersand thumb of the human hand effectively. Moreover, miniature keyboardsand keypads used in combination with modal input techniques tended tolimit the user's ability to efficiently input data depending on thenumber of taps required to input a particular symbol and how fast theuser could tap the input element with his thumb or a stylus to selectthe particular symbol.

The present inventors also recognized that, with the emergence ofmultimedia capabilities, such as MP3, in many hand-held electronicdevices, there is a need to support fast and intuitive scrolling andlist navigation actions. For example, many hand-held electronic devices,in particular cellular phones, typically use a D-pad as the primary wayto navigate up and down a list of items, such as a list of songs, on anitem-by-item basis. Such item-by-item scrolling, however, is typicallyinefficient in navigating from the first item in the list to the lastitem in the list, especially if the list includes hundreds of items.Moreover, the page up and page down functionality provided on many ofthese devices to make it easier for a user to navigate long lists ofitems often must be executed through multiple taps or presses of one ormore input elements. The particular number of taps or number of inputelements required to evoke such page up and down functionality usuallydepends on the application developer's preference, and therefore oftendiffers from application to application within the same electronicdevice.

The present inventors also recognized that a user's ability to controlgame play in such devices was greatly limited. For example, while analoggame control has been available to users of PC and console game systems,analog game control generally has not been widely available on hand-heldelectronic devices, such as cellular phones and PDAs. As noted above,most high end games that run on a gaming platform such as the Xbox orthe Play Station 2 involve analog or continuous inputs from one or moreinput elements, such as a miniature or full sized joystick. Cellularphones and PDAs, in contrast, provide only buttons or keys as inputelements for game play. Moreover, to the present inventors knowledge,there are no standards for input element layout for cellular phones, orin the way that the input elements are mapped to gaming functions. Forexample, often times, the D-pad provided on most of these cellularphones is not available to the game developer to use as a game input.The result is that directional movement input is often provided usingthe number input elements on the keypad, particularly the “2”, “8”, “4”,and “6” input elements on the keypad for up, down, left and rightdirectional movement. The present inventors recognized that this layoutpresents several problems. First, the input is discrete, so there is noway to provide a continuous input, such as steering a car in a firstperson driving game. In such as game, the car can be steered to moveonly left, straight, or right in preset increments, which severelylimits the quality of the gaming experience. Second, directionalmovement is provided by the number input elements while the clearlylabeled arrow keys on the D-pad remain unused. This typically requiresgetting used to and may create user confusion. Third, the number inputelements are typically located on one end of the phone's surface, andare thus less comfortable to use than the D-pad which is typicallylocated above the number input elements. The result is that game play islimited and not as widely adopted as it might be with a betterinterface.

The present inventors further recognized that conventional provisioningmechanisms for delivering content to a mobile device tends to deliver aless than ideal end user experience. Buying or downloading content bybrowsing on a mobile device tend to results in a confusing, negative,and sometimes abortive buying experience. First of all, finding thedesired content to purchase can often be difficult and frustrating. Theuser is often left at the mercy of the form factor and user interface ontheir mobile device. The visual display is often quite small and theresolution may be less than stellar, with the ability to display only asmall number of items at once. The software user interface to access thecarrier's on-portal storefront itself can typically be rudimentary andobtuse, with no standardization across carriers, manufacturers, or evendevices within the same manufacturer. Many carriers often use aWAP-based interface for their mobile storefront, which tend to posesignificant user interaction limitations. Typically, only a few featureditems are readily available for the end user to find; the rest of thecontent is often hidden behind layers of web pages, which are oftenpoorly categorized and hard to find. In addition, the download speed forobtaining mobile content is often limited by the data speeds of themobile device and wireless network of the service provider. In areas ofpoor cellular coverage, the download process may take an unacceptableamount of time, or fail repeatedly. Some mechanisms, such as SMS shortcode, attempts to resolve some of these deficiencies by advertising themechanism to purchase content in publications which their targetdemographic is likely to encounter. However, such mechanisms still tendto have other limitations—for example, the SMS short code mechanismcategorically misses potential customers because the advertisement maybe missed in the publication. Even if the users notice the advertisementand was able to discover the existence of the content, the process ofsending an alphanumeric keyword to an SMS short code could pose asignificant challenge to less technically savvy persons who may not becomfortable with sending a text message, or entering a mixed text andnumeric string using their mobile device's keypad. While purchasingcontent using a personal computer (PC) tend to provide a betterexperience than using the mobile device, transferring content from a PCto a mobile device often requires a separate (and often complicated)application to establish a data link between the device. It alsorequires the user to be at a stationary location, often withconnectivity to the internet, which constrains the buying process andreduces the spontaneity and mobility of the buying experience.

The present inventors also recognized that the over-the-air provisioningmethod tend to suffer from delay, instability of web portals, and poordownload speed. Typically, a delay between the time of purchase and thetime when the purchased content is finally installed on the mobiledevice tend can last up to two days or more. In addition, the web portalperforming the provisioning may not be operational at all times, due toboth scheduled and unscheduled down times. This can often result infrustration when the user attempts and fails to download the content.Further, the download process is subject to the data speed of the deviceand the carrier's network. While the number of mobile devices thatsupport 3G technology (which theoretically supports broadband-like dataspeed) may be rising, the quality of service coverage for a carrier inlocal geographical pockets can often make the difference between aspeedy and a failed content download. Connections tend to dropinexplicably in the middle of the download process, and the end user canoften be forced to attempt multiple downloads before eventuallyreceiving the content. In some instances, the end user may fail toreceive the content at all. Also, data download is often subject to datacharges above and beyond the cost of the content itself. Further, thepricing structure for data download tend to be opaque, which can oftencause many end users to shy away from data downloads. Further, not allthe end user may have a subscription plan that supports data downloads.For example, some pay-as-you-go plans by select carriers tend not toallow the end user to navigate to an off portal URL, or even to takefull advantage of the on-portal content from the mobile device. Forthese customers, the SMS short code mechanism would fail, causingconfusion, frustration, and a long process to try to recover the paymentfor content that their mobile devices cannot receive.

The present inventors also recognized that the conventional over-the-airapplication and content procurement process often do not provide abackup copy of the application or content downloaded by the end user.After downloading the content, if the mobile device is lost or stolen,or if a firmware upgrade with a master reset is needed, the downloadedcontent can often be lost. The end user may then be forced to repurchasethe same content. Typically, this is unlike the conventional PC basedsoftware purchase paradigm. Software purchased and downloaded from theweb often comes in a zipped archive, which the end user can back up onnon-volatile media at their own discretion. So if the PC itself had aproblem and needed to be rebuilt with a fresh installation of theoperating system, the end user may be able to reinstall all of thesoftware that he or she has purchased by using the backup copy. This isoften not an option in the mobile space.

Consequently, the present inventors have developed a flexible andefficient human interface and input system and techniques that may beimplemented on a variety of small hand-held accessory devices or “inputaccelerator” devices, such as a key fob or remote control. An inputaccelerator device or an accessory device may connect to one or moreconventional hand-held electronic devices (i.e., a host electronicdevice), such as a cellular phone, PDA, pocket PC, smart phone, MP3player, or other similar devices using a wired communication protocolsuch as USB, or a wireless communication protocol such as Bluetooth andremotely control all functions of the connected host electronic devices.The accessory device may be used in conjunction with the input elementson the host electronic device to accelerate the user's ability toperform functions such as text input, game play, list navigation andscrolling. Alternatively, the accessory device can even eliminate theneed to directly interface with the inefficient human interface andinput systems of the connected host electronic devices. The accessorydevice may also be implemented to include various hybrid devicesincluding a wireless headset in addition to the functions of a remotecontrol. The accessory device (whether one handed or two handed) mayalso be implemented to utilize the opposed thumb and finger ergonomicsinherent in the hand and the skills already developed for usingconventional input techniques to accomplish data input, list navigation,device control, and game control in a timely, efficient, comfortable,fun, and intuitive manner. Thus, no specialized training beyond thatnormally expected with any newly purchased hand-held device is expected.

Further, the present inventors have developed a technique and apparatusthat may be implemented as disclosed herein to, e.g., (1) deliverapplications and other content to mobile devices that addresses the enduser's needs in searching and finding the content she wants and (2)install the content on the mobile devices in a transparent and easy touse manner. The content to be delivered may include an application,songs, wallpapers, ringtones, video clips or other such multimediacontent. The content may reside within the accessory device, and can bedelivered to a mobile device at the touch of a button, over a wired orwireless connectivity protocol. The need for over-the-air provisioningcan thus be eliminated. Users are able to purchase content in the formof a tangible product, and will have a backup mechanism to reinstall thecontent in the event their mobile device is lost, stolen, or otherwisemodified to render previously installed content inoperable. Contentdelivery speed is typically far better than over-the-air provisioning.The delivery process can be as simple as pressing a button on theaccessory device. The number of steps the consumer must go through arethus significantly reduced, from the time they make a decision topurchase the content, to the time they are able to consume this contenton their mobile devices. Details are outlined in the following sections.

Implementations of the human interface and input system and techniquesfor the accessory device described herein may include variouscombinations of the following features.

In one aspect, an accessory device for interfacing with a host deviceincludes a communication channel designed to establish a bidirectionaldata link between the accessory device and the host device. Theaccessory device also includes a storage unit communicatively coupled tothe communication channel. The storage unit is designed to store variousdata. In addition, at least a first data is selectively transmitted fromthe stored data of the accessory device to the host device through theestablished bidirectional data link.

Implementations can optionally include one or more of the followingfeatures. The stored data can include a computer executable application,such as a software application. In addition, the accessory device caninclude a download manager communicatively coupled to the communicationchannel. The download manager can be designed to download or update thevarious data stored in the storage unit from an external source. Theaccessory device can further allow the first data to be selectivelytransmitted based on a command from the host device in response to auser interaction with a host input assembly included on the host device.The selectively transmitted first data can include an output data of anapplication executing on the accessory device. In some implementations,the application executing on the accessory device includes a gameapplication, and the output data includes streaming video.

Implementations can also optionally include one or more of the followingfeatures. The accessory device can include an input assembly includingvarious input elements, with each input element being selectively mappedto one or more input functions based on the selectively transmitteddata. The accessory device an also include an input controllercommunicatively coupled to the input assembly and the communicationchannel, with the input controller designed to generate an input signalupon actuation of at least one of the various input elements. The inputcontroller is designed to relay the input signal to the communicationchannel for transmission to the host device to control a plurality ofinput functions of the selectively transmitted first data. Further, theinput assembly can also include a first input assembly made up of atleast a first one of the various input elements. The first one of thevarious input elements is located on a first surface of the accessorydevice. Also, at least one input element includes at least one of ananalog button, a digital button, a key, a rocker, a slider, a dial, atouch pad, a touch stick, a pressure sensor, a force sensitive resistor,a piezoelectric resistive sensor, a capacitive sensor, a positionalsensor, a rotary encoder, a linear potentiometer, a D-pad, a trackball,and a miniature analog thumb joystick. The input assembly can be furtherdesigned to optimize a biomechanical effect of the human user's opposingthumb and fingers.

Implementations can further include one or more of the followingfeatures. The various input functions of the selectively transmittedfirst data can be controlled by a user interaction with a combination ofthe input assembly and a host input assembly disposed on the hostdevice. Also, the communication channel can include a wired dataconnection, such as any one of a Universal Serial Bus port, a IEEE 1394Firewire port, a serial port, a parallel port, a headphone port, and adata port. Alternatively, the communication channel can include awireless data connection, such as any one of a Bluetooth connection, anInfrared connection, a Wi-Fi connection, and a WiMAX connection. Thestorage unit can include a removable memory unit including at least oneof a SD memory card, a mini-SD memory card, a micro-SD memory card, anXD memory card, and a compact flash card. Further, the accessory devicecan include a processor communicatively coupled to the communicationchannel. The processor is designed to determine whether to execute thefirst data on the accessory device or whether to transmit the first datato the host device to be executed on the host device.

In another aspect, an accessory device is designed by providing acommunication channel for transmitting information bi-directionallybetween a host device and the accessory device. Also, a storage unitdesigned to store various data is provided to be communicatively coupledto the communication channel. An input assembly including various inputelements is disposed on one or more surfaces of the accessory device.The input assembly is designed to receive human input throughmanipulation of the input elements with at least one of the inputelements further designed to be selectively mapped to one or morefunctions of a selected data from the stored data. An accessoryprocessor communicatively coupled to the storage unit, the communicationchannel, and the input assembly is also provided. The accessoryprocessor is designed to determine whether to execute the selected dataon the accessory device or whether to transmit the selected data to thehost device to be executed on the host device.

In yet another aspect, various host devices can be controlled byproviding an accessory device that includes a communication channeldesigned to transmit data bi-directionally between the various hostdevices and the accessory device. The accessory device provided alsoincludes a storage unit communicatively coupled to the communicationchannel and designed to store various data, The accessory deviceprovided also includes an input assembly including various inputelements, with each input element being designed to be selectivelymapped to one or more input functions of a selected one of the storeddata.

Implementations can optionally include one or more of the followingfeatures. Disposing the input assembly on one or more surfaces canfurther include disposing at least a first input assembly designed tooptimize a biomechanical effect of the human user's opposing thumb andfingers. In addition, providing the accessory device can further includedesigning the input assembly to include at least a first input assemblyincluding at least a first one of the various input elements. The firstone of the various input elements can be located on a first surface.Also, an input element on one of the various host devices can beactuated in conjunction with the first input assembly to accelerateinput functions of the selected data.

Computer program products, which may be embodied on computerreadable-material, are also described. Such computer program productsmay include executable instructions that cause a computer system toconduct one or more of the method acts described herein. Similarly,computer systems are also described that may include a processor and amemory coupled to the processor. The memory may encode one or moreprograms that cause the processor to perform one or more of the methodacts described herein.

The input accelerator device and human interface and input systems andtechniques described herein may provide one or more of the followingadvantages. The human interface and input system and associatedtechniques offer the functionality of a high performance gamecontroller, which can support the most demanding game inputrequirements, and the speed and accuracy of data input that can beobtained with the use of a conventional standard QWERTY keyboard, butwithout the large footprint. Also, the human interface and input systemand associated techniques can increase the number of functions that maybe associated with a given number of input elements without increasingthe number of keystrokes or taps that is required. Moreover, it allowsthe input element size to remain consistent with the ergonomics of thehuman hand without increasing the time it takes to learn how to use theinput system compared to conventional input systems.

Implementing the human interface and input system and techniques on aninput accelerator device can eliminate the need to interface withinflexible, cumbersome, and inefficient input systems provided withconventional hand-held electronic devices. Since the input acceleratordevice can connect to multiple hand-held electronic devices using wiredor wireless communication protocols a singled input accelerator devicecan make up for deficiencies of multiple conventional hand-heldelectronic devices. Thus, the input accelerator device can eliminate theneed to retrofit or redesign conventional hand-held electronic devicesto directly implement the disclosed human interface and input system andassociated techniques. In addition, the input accelerator device can besmall and aesthetically valuable as a fashion accessory. For example,the input accelerator device may be implemented to include logos ofsports teams or cartoon characters in addition to a wide selection ofcolors. The input accelerator device also may be easily attached to akeychain or a phone leash or clipped on or carried in a pocket or purse.

Details of one or more implementations are set forth in the accompanyingdrawings and the description below. Other features and advantages willbe apparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a hand-held input accelerator device uponwhich the human interface and input system may be implemented.

FIG. 2 is another block diagram of a hand-held input accelerator deviceupon which the human interface and input system may be implemented.

FIG. 3 is a block diagram of the human interface and input system.

FIG. 4 is a detailed block diagram of the input assembly of the humaninterface and input system.

FIGS. 5 a-d show front, side, and back views, respectively, of ahand-held input accelerator device wherein a second input assemblyincludes a pressure sensor arrays having a plurality of configurableactive areas.

FIG. 6 illustrates an alternate implementation of the second inputassembly on a hand-held input accelerator device.

FIGS. 7 a-d depict one implementation of a hand-held input acceleratordevice comprising a combination of a remote control and a wirelessheadset.

FIG. 8 is a block diagram of an accessory device for interfacing with ahost device and external source.

FIG. 9 is a block diagram of a prepackaged accessory device.

FIG. 10 a-i illustrates example form factors for a prepackaged accessorydevice.

FIG. 11 a depicts an accessory device configured to stabilize one handeduse of a host device.

FIG. 11 b-c depicts an accessory device configured to stabilize twohanded use of a host device.

FIG. 11 d illustrates an accessory device communicatively linked to ahost device via a wireless connection.

FIG. 11 e depicts an accessory device communicatively linked to a hostdevice via a wired connection.

FIG. 12 a-b depicts an accessory device comprising an input assembly.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Biomechanics of the Human Hand

The human hand comprises an opposable thumb and four fingers, i.e., thethumb may be used in opposition, in concert, in combination orfunctional relation with any of the four fingers. Compared to the humanfingers, the human thumb may be characterized as having larger range ofmotion, stronger sustaining force actuation and poorer dexterity. Thehuman base joint of the thumb has three degrees of freedom, such asside-to-side movement, up and down movement, and rotation about thethumb's long axis; while the base joint of the fingers has two degreesof freedom, such as side-to-side and up and down movement. Thus, thethumb typically is considered to have better range of motion than any ofthe fingers. Also, because the human thumb has a bigger actuation musclethan any of the fingers, it can provide larger sustaining forces thanthe fingers. But also because of the larger muscle, the human thumb maysuffer from diminished fine motor control and rapidity of motion thatcan be exerted compared to the fingers. Thus, the human fingers are moresuitable for performing tasks that require fine motor coordination orthe ability to pinpoint or rapidly repeat actuation.

Hand-Held Input Accelerator Device Hardware Overview

FIG. 1 is a high-level block diagram of a hand-held input acceleratordevice 100 upon which the human interface and input system andassociated input techniques described herein may be implemented forcontrolling software applications stored and running on a hand-held hostdevice 117. The input accelerator device 100 is a companion auxiliarydevice to the hand-held host device 117, whereby a user may interfacewith the auxiliary device and the hand-held host device concurrently 117or the auxiliary device alone in lieu of the hand-held host device 117.The input accelerator device 100 is communicatively coupled to ahand-held host device 117, such as a cellular phone, PDA, pocket PC, orsmart phone, or other similar devices using a communication link 111,such as the Bluetooth protocol. The Bluetooth protocol is a short-range,low-power 1 Mbit/sec wireless network technology operated in the 2.4 GHzband, which is appropriate for use in piconets. A piconet can have amaster and up to seven slaves. The master transmits in even time slots,while slaves transmits in odd time slots. The devices in a piconet sharea common communication data channel with total capacity of 1 Mbit/sec.Headers and handshaking information are used by Bluetooth devices tostrike up a conversation and find each other to connect.

The communication link 111 alternatively may be a wired link usingstandard data ports such as Universal Serial Bus interface, IEEE 1394firewire, or other serial or parallel port connections. Additionally,the communication link 111 can be other standard wireless links such asinfrared, wireless fidelity (Wi-Fi), or any other wireless connection.Wi-Fi refers to any type of IEEE 802.11 protocol including 802.11a/b/g.Wi-Fi generally provides wireless connectivity for a device to theInternet or connectivity between devices. Wi-Fi operates in theunlicensed 2.4 GHz radio bands, with an 11 Mbit/sec (802.11b) or 54Mbit/sec (802.11a) data rate or with products that contain both bands.Infrared refers to light waves of a lower frequency out of range of whata human eye can perceive. Used in most television remote controlsystems, information is carried between devices via beams of infraredlight. The standard infrared system is called infrared data association(IrDA) and is used to connect some computers with peripheral devices indigital mode.

The communication link 111 connects a communication interface 116 of theinput accelerator device with a communication interface 118 of thehand-held host device 117. The input accelerator device 100 includes aninterface and input system 114 in communication with the communicationinterface 116. The interface and input system 114 includes inputelements (not shown), such as keys, buttons, pressure sensor pads, touchpads, rotary dials, thumb joysticks, linear strip sensors or otheractuators associated with one or more sensors that can be manipulated byone or both of a human user's thumbs or fingers. The input elements areselectively mapped to one or more functions of the software applicationsstored on the host device 100. The mapping or re-mapping of the inputelements to one or more functions of the software applications may beaccomplished by using one of the techniques disclosed in co-pending U.S.patent application Ser. No. 11/221,412, entitled “A Method of Remappingthe Input Elements of a Hand-Held Device”, which is incorporated hereinin its entirety by reference.

In this implementation, the interface and input assembly 114 isimplemented with four input elements, but may be implemented with moreor fewer input elements. Upon actuation of an input element, anelectrical signal is generated by the input assembly 114. The generatedelectrical signal is converted into input signals 122, which aretransmitted over the communication link 111 to the hand-held host device117, which receives the input signals 122 through communicationinterface 118. The input signals 122 are processed by the hand-held hostdevice 117 to execute the software function mapped to the actuated inputelement. Typically, hand-held host device 117 has a processor (notshown), such as an ARM, OMAP, or other similar processor for processingthe input signals and the software applications stored and runningthereon.

FIG. 2 is a block diagram illustrating an input accelerator device 200upon which the human interface and input system and associated inputtechniques described herein may be implemented. In this implementation,optional hardware components are implemented to configure a morepowerful auxiliary device to handle more of the processing duties fromthe hand-held host device 117 onto the input accelerator device 200. Theinput accelerator device 200 may be used in conjunction with thehand-held host device 117 to control software applications stored andrunning on the input accelerator device 200 itself. For example, in thisimplementation, the input accelerator device 200 may have stored andrunning thereon re-mapping software such as that described in co-pendingU.S. patent application Ser. No. 11/221,412. As another example, theinput accelerator device 200 may have stored and running thereon anInternet browsing application, which may be used in combination withcommunication functionality provided with hand-held host devices, suchas the cellular communication protocols (e.g., CDMA or GSM/GPRS)provided with cellular phones, to browse the Internet.

The input accelerator device 200 is in wireless (or alternatively wired)communication with the hand-held host device 117. The hand-held hostdevice 117 may include some of the same components as shown for theinput accelerator device 200. In this implementation, the hand-held hostdevice 117 is a conventional cellular phone, but other types ofhand-held electronic devices may be used with the input acceleratordevice 200. The input accelerator device 200 may include a bus 202 orother communication mechanism for communicating information, and aprocessor 204, such as an ARM, OMAP or other similar processor, coupledwith bus 202 for processing information, such as one or more sequencesof one or more instructions, which may be embedded software, firmware,or software applications for controlling the hand-held host device 117,such as re-mapping software or text, gaming or scrolling applications,or any other software application.

The input accelerator device 200 also may include a main memory 206,such as a random access memory (RAM) or other dynamic storage device,coupled to bus 202 for storing information and instructions to beexecuted by processor 204. Main memory 206 also may be used for storingtemporary variables or other intermediate information during executionof instructions to be executed by processor 204. The input acceleratordevice 100 further may include a read only memory (ROM) 208 or otherstatic storage device coupled to bus 202 for storing static informationand instructions for processor 204. A storage device 210 may be providedand coupled to bus 202 for storing information and instructions for theprocessor 204. The storage device 210 can include a flash memory such asEEPROM, compact flash, or a similar storage unit for storing devicefirmware. Upgrades to the firmware can be easily downloaded through thehost device. The input accelerator device 200 may also include anoptional display 212, such as a liquid crystal display (LCD), fordisplaying information to a user, and a human interface and input system114 for communicating information and command selections from a humanuser to processor 204. The command selections from a human user arecommunicated as input signals 122 from the interface and input system114 to the bus 202 for distribution to other components such as theprocessor 204. Input accelerator device 200 also may include acommunication interface 216 coupled to bus 202.

Communication interface 216 provides a two-way data communication 211coupling to the hand-held host device 117, a wireless service device, orwireless service station. The two-way data communication 211 allows foran exchange of interactive data between the hand-held host device 117and the input accelerator device 200. The interactive data may includevoice data for conducting a conversation using a cellular phone hostdevice. The interactive data may also include a graphical user interface(GUI) for browsing the Internet, which may be displayed on the optionaldisplay 212. In this implementation, the cellular phones host deviceserves as a communication conduit for receiving data from the Internetas previously mentioned. Communication interface 216 may be a wirelesslink such as Bluetooth or any other wireless communication interfaceknown to one of ordinary skill in the art. In the wireless linkimplementation, communication interface 216 may send and receiveelectrical, electromagnetic or optical signals that carry digital datastreams representing various types of information.

The input accelerator device 200 also can display a graphical userinterface (GUI) on the display unit 212 to provide a list of hand-heldhost devices 117 within communication range of the input acceleratordevice 200. The list of hand-held host devices 117 within communicationrange can be displayed using text names of each device, an iconrepresenting each device, or a combination of text name and iconrepresenting each device. The input elements in the input assemblies406, 408, 409 (described in detail in FIG. 4 below) can be actuated incombination or individually to select a desired hand-held host device117 from the list of devices in communication range of the inputaccelerator device 200.

The input accelerator device 100, 200 as described above can obviate theneed to remove the hand-held host device 117 from the user's pocket, bagor other storage location by performing most simple text/voice controlfunctions. The input accelerator device 100, 200 may also include adevice driver (not shown) to effect control over the host hand-helddevice 117 and all associated software applications on the hand-heldhost device 117.

Human Interface and Input System Overview

FIG. 3 depicts a block diagram of the subsystems of the human interfaceand input system 114 of the input accelerator device 100 or the inputaccelerator device 200. The human interface and input system 114, whichis described in more detail in co-pending U.S. patent application Ser.No. 10/699,555, entitled “Human Interface System”, which is incorporatedherein in its entirety by reference, includes an input assembly 305 incommunication with an input controller 316 to interpret and generateinput signals in response to user interaction with the input assembly305. The input assembly 305 can include multiple input assemblies(described in detailed below in FIG. 4), each assembly including anumber of input elements, located on one or more surfaces of the inputaccelerator device 100 or the input accelerator device 200. The inputelements are selectively mapped to one or more functions of a softwareapplication that is stored on the hand-held host device 117 so that whenone of the input elements is actuated, the function mapped to theactuated input element is executed.

Specifically, when an input element is actuated, one or more electricalsignals 312 are produced, which are received and interpreted by theinput controller 316. The input controller 316, which may include one ormore processors, receives the one or more electrical signals 312 andconverts them into input signals 122 which are transmitted to thehand-held host device 117 via communication link 111 connecting thecommunication interface 116 of the input accelerator device 100 with thecommunication interface 118 of the hand-held host device 117. Similarly,the input signals 122 are transmitted to the hand-held host device 117via communication link 211 connecting the communication interface 216 ofthe input accelerator device 200 with the communication interface 118 ofthe hand-held host device 117. In one implementation the hand-held hostdevice 117 interprets the input signals 122 on the fly using software,such as mapping software, to execute the function mapped to the actuatedinput element. Alternatively, the input accelerator device 200 mayinterpret the input signals 122 using software stored in the storageunit 210.

FIG. 4 illustrates one implementation of input assembly 305 includingmultiple input assemblies. The input assembly 305 includes a front inputassembly 406, a rear input assembly 408, and a side input assembly 409.The front input assembly 406 and the rear input assembly 408 includesone or more input elements. The input elements produce one or moreelectrical signals 312 upon actuation of the input elements. The inputcontroller 316, which may include one or more processors, receives theone or more electrical signals 312 and converts them into input signals122, which are in a form suitable to be received and interpreted by thehand-held host device 117. Alternatively the input signal 122 may beinterpreted by the processor 104 on the input accelerator device 200.

The hand-held host device 117 receives the input signals 122 andinterprets it using the re-mapping software noted above and described inmore detail below, which may be loaded on the host hand-held device.Specifically, the input signals 122 transmitted from the inputaccelerator device 100, 200 are received by a communication interface118 on the hand-held host device 117 using standard communicationsprotocols, such as the Bluetooth wireless protocol. The Bluetoothprotocol allows the input signals 122 transmitted from the inputaccelerator device 100, 200 to control execution of embedded software,firmware, or software applications, such as a text messaging or gameapplications, on the hand-held host device 117. The input signals 122are received and used by the hand-held host device 117 to map and remapthe input elements in the front input assembly 406, the rear inputassembly 408 and the side input assembly 409 to one or more softwarefunctions of a software application running on the host hand-held device117.

For example, if a text application is running on the hand-held hostdevice 117, then an input controller (not shown) on the hand-held hostdevice 117 maps one or more input elements on the hand-held host device117 (e.g., input elements forming the keypad on a cellular phone) to oneor more symbols, such as characters, letters, numbers, icons, othertypes of symbols, or combinations of different types of symbols, and mapone or more input elements of the front input assembly 406 on the inputaccelerator device 100, 200 to a shifting or indexing functionality.Thus, if a user wants to insert the letter “X”, the user may press afirst shift key on the input accelerator device 100, 200 and then thenumber key “9” on the hand-held host device 117. If the user wants toinsert the letter “Y”, the user may press a second shift key on theinput accelerator device 100, 200 and then the number key “9” on thehand-held host device 117. If the user wants to insert the letter “Z”,the user may press a third shift key on the input accelerator device100,200 and then the number key “9” on the hand-held host device 117 Soinstead of having to press the number key “9” on the hand-held hostdevice 117 three times to insert the letter “Z”, which is the norm onmost multi-tap interfaces, the user can insert the same letter with onepress of the number key “9” on the hand-held host device 117 incombination with one press of the third shift key on the inputaccelerator device 100, 200.

Also, one or more input elements of the rear input assembly 408 on theinput accelerator device 100, 200 can be mapped to scrolling,navigation, or cursor control functions. Furthermore, one or more inputelements of the side input assembly 409 can be mapped as a short-cut keyfor executing a favorite application on the host hand-held device 117,such as a text, game or music application. If the hand-held host device117 is executing a game application, then the input signals 122 may beused to control game play. That is, the input controller (not shown) onthe hand-held host device 117 may map the input elements of the inputassemblies 406, 408, 409 from the input accelerator device 100, 200 togame functions. The mapping of the input elements to particular inputfunctions for a given software application, whether done by an inputcontroller or processor on the hand-held host device 117 in response tothe input signals 122 transmitted by the input accelerator device 100,200, may be customized by the application developer or the user throughdownloads or other programming modalities. Moreover, the mapping of theinput elements may be done for language key set changes, which mayreduce the cost of manufacturing hand-held electronic devices formanufacturers servicing multiple countries.

Alternatively, the processor 204 of the input accelerator device 200 mayperform the mapping function described above and alleviate some of theprocessing burden of the hand-held host device 117. Moreover, the humaninterface and input system 114 need not have the input controller 316,particularly where cost is a concern. In those instances, the processor204 can directly receive the electrical signal 312 and interpret it intoa suitable input signal 122, which is mapped using the mappingtechniques noted above and described in more detail below.

The co-pending U.S. patent application Ser. No. 11/221,412, describestechniques to selectively map and re-map the input elements on ahand-held electronic device optimally for a particular class ofapplication software with common requirements (e.g., games, text entry,music and scrolling) and/or for a particular user. These techniques mayalso be used to map and remap the input elements of the inputaccelerator device 100, 200 disclosed herein and/or the hand-held hostdevice 117. Alternatively, the input accelerator device 100, 200 maysimply transmit the input signals 122 in response to user manipulationof the input elements to the hand-held host device 117, where anapplication software executing on the hand-held host device 117interprets the input signals accordingly.

In one implementation, a technique for remapping a hand-held electronicdevice includes receiving configuration settings, which may include atleast one physical input element associated with at least one function,for a software application or a class of software applications;modifying a mapping function based on the configuration settings; andexecuting the function associated with the physical input element uponan activation, e.g., a press or actuation, of the physical input elementduring operation of the software application. The activation of thephysical input elements may be from the three input assemblies 406, 408,409 of the input accelerator device and/or the input assemblies of thehost hand-held devices. As described above, using standard wirelesscommunication protocols, such as Bluetooth, signals generated from thephysical activations of the input assemblies of the input acceleratordevice 100,200 is transmitted to the hand-held host device 117 tocontrol execution of specific software or software application. And inresponse to the execution of the software or software application by thesignal transmitted from the input accelerator device, mapping andremapping procedures are performed. The mapping function may comprise akeyboard device driver, a device layout or a translation layer of thekeyboard device driver, a combination of these or another mappingfunction.

In an implementation where the mapping function comprises a devicelayout, the step of executing the function associated with the physicalinput element upon an activation of the physical input element mayinclude writing a scan code to a buffer; retrieving the scan code fromthe buffer; converting the retrieved scan code to a virtual inputelement code using the modified device layout; calling a keyboard eventwith the scan code and the virtual input element code; and executing thefunction associated with the keyboard event, which is the functionassociated with the physical input element.

In an implementation where the mapping function comprises a translationlayer, the step of executing the function associated with the physicalinput element upon an activation of the physical input element mayinclude writing a scan code to a buffer; retrieving the scan code fromthe buffer; converting the scan code to an original virtual inputelement code; converting the original virtual input element code to anew input element code using the modified translation layer of thekeyboard device driver; calling a keyboard event with the scan code andthe new virtual input element code; and executing the functionassociated with the keyboard event, which is the function associatedwith the physical input element.

In another implementation, a method of re-configuring or re-mapping asoftware application or class of software applications may includeassociating one or more physical input elements disposed on the inputaccelerator device with at least a first executable function; andcausing a modification of a mapping function to form an association ofthe one or more physical input elements with a second executablefunction to an association of the one or more physical input elementswith the first executable function so that the first executable functionis configured to be initiated upon an activation of the one or morephysical input elements during operation of the software application orthe a software application within a class of software applications. Thesecond executable function is typically a default function typicallyprovided with the software application to be executed in the defaultstate when the one or more physical input elements are pressed oractivated.

In yet another implementation, a graphical user interface identifyingfunctions that are available to be associated with one or more physicalinput elements may be provided. The graphical user interface may alsoidentify software applications for which a user can select to apply hisphysical input element to function associations. In one instance thegraphical user interface may include input element icons, whichcorrespond to physical input elements, and function icons, whichcorrespond to an executable function. The user may then specify thefunctions to associate with physical input elements.

Hand-Held Input Accelerator Device Implementations

FIGS. 5 a-d illustrates front, side, back, and “hand-held” views,respectively, of a hand-held input accelerator device 500 upon which thehuman interface and input system may be implemented. In oneimplementation, the input accelerator device 500 is implemented as aremote control device including four planar or contoured surfaces: afront surface 502, a back surface 508, a left side surface 504, and aright side surface 306. Although, in other implementations, the inputaccelerator device 500 may have more or fewer planar and/or contouredsurfaces. The input accelerator device 500 may be a miniature standalonewireless accessory device that communicates with a variety of hand-helddevices such as a cellular phone, PDA, pocket PC, smart phone, laptop,or other similar devices through a wired or wireless communicationsprotocol, such as the Bluetooth wireless protocol.

As shown in FIG. 5 a, on the front surface 502, a display (not shown),such as an LCD, and a front input assembly 526 may be disposed adjacentto each other. Alternatively, the display may be on a separate assemblysuch as those displays for PDA's and cellular phones with aswivel-mounted screen or flip-phone configurations. Also, the frontinput assembly 526 may be disposed on more than one surface. The frontinput assembly 526 may include four input elements 510, 512, 514, and516, although any number of input elements may be provided, which may beactuated by a user's thumb or fingers. The input elements 510, 512, 514,and 516 may be mapped to function as shift or index keys, such as Shift1(510), Shift2 (512), Shift3 (514), and Shift4 (516), to facilitateshifting or indexing between symbols, such as characters, letters and/ornumbers, associated with input elements on the host electronic device,such as a keypad on a cellular phone or PDA. For example, on a hostelectronic device, such as a cellular phone, typically a keypad isprovided, which has a “7PQRS” key or input element. By using the inputaccelerator device 500, any one of these symbols—P, Q, R, and S—may beentered by tapping the appropriate input element 510, 512, 514, and 516and tapping the “7PQRS” key on the host electronic device. That is, the“P” character, e.g., can be entered on the host electronic device bypressing input element 510 (which is mapped as Shift1) and pressing the“7PQRS” key on the host electronic device. Likewise, the Shift2 inputelement 512 may be pressed with the “7PQRS” key to produce the “Q”character. The Shift3 input element 514 may be pressed with the “7PQRS”key to produce the “R” character. Pressing the “7” key without shiftkeys can either produce the number “7” or the “P” character depending onuser preference, which can be configured in software. The Shift4 inputelement 516 can be pressed with the “7PQRS” key to produce the “S”character. Thus, the need to tap the same key on the host devicemultiple times (i.e., three times) to enter, for example the “S”character” is eliminated. The implementation of multiple shift orindexing input elements as described above can dramatically improve thecomfort, accuracy and speed of text entry for a variety of hosthand-held device users.

As shown in FIG. 5 b, a rear input assembly 528 may be disposed on theback surface 308. In this implementation, the front input assembly 526(FIG. 5 a) is disposed relative to the rear input assembly 528 to takeadvantage of the opposition of the human thumb and finger.Alternatively, a user may flip over the input accelerator device to usethe rear input assembly his thumb instead of his fingers. The rear inputassembly 528 may include two sensor arrays configured in software torepresent one or more delineated active areas corresponding to differentprogrammable functions depending on the application. The sensor arraysmay include a ring-shaped curved sensor array 518 and a strip-shapedlinear sensor array 520. The curved sensor array 518 may be implementedto be swept sideways along a natural freedom of motion of a thumb (orfinger) to map horizontal cursor movements. In addition, the linearsensor array 520 may be swept vertically using the thumb (or finger) tomap vertical cursor movements or control the scroll bar in a longselection list. The curved 518 and linear 520 sensor arrays in thisimplementation may include an actuator, such as an elastomeric material,attached to a force sensitive resistor array, a capacitive mat or array,or other similar pressure sensitive device or grid that can providemultiple outputs corresponding to the pressure readings of a pluralityof active areas on the sensor arrays. In another configuration of thepressure sensor arrays 518, 520, the entire surface of the sensor arrays518, 520 may be covered by rectangular active areas interspersed betweensmall rectangular inactive areas to achieve any desired number of activeareas. Other configurations of the pressure sensor arrays 518, 520 maybe realized depending on the requirements of the desired application.

Alternatively, the rear input assembly 528 can be free of sensors andthe input elements on the front input surface 502 may be programmed insoftware to allow the user to stroke the linear sensor array 520 up ordown to effect a vertical scrolling motion in list selection. Thisimplementation facilitates the user in navigating through long listsefficiently and effectively without any additional sensors on the back.Additionally, the front 502 or back 508 input surfaces can optionallyprovide access to a miniature thumb joystick with analog inputs in bothleft-right and up-down directions. This thumb joystick can provideanalog signals to control a game on the mobile phone host device 117.

The side input assembly 529 may be disposed on the left-side surface 504and/or the right-side surface 506 as shown in FIGS. 5 a-c. The left sidesurface 504 and right side surfaces 506 of the input accelerator 300 maybe implemented to include additional input or selection elements 522,524, 526, 528, which may be used to map to other types of cellular phonefunctions using re-mapping techniques described above and in theco-pending U.S. patent application Ser. No. 11/221,412. The input orselection elements of the side input assembly 529 can also beimplemented to effect shifting between modes. For example, holding downone of the input or selection elements 522, 524, 526, 528 may act as ashortcut key whereby a favorite application such as short messageservice (SMS), instant messenger (IM) or music may be activated. Holdingdown one of the selection elements may also act as a shortcut key toactivate cellular phone functions such as phone number search andselect, phone number dial, and call answer. Two of the input orselection elements 522, 524 may be implemented for left-handed users andthe other two selection elements 526, 528 for right-handed users.

It is to be understood that the input elements 510, 512, 514, 516 of thefront input assembly 526, the side input elements 522, 524, 526, 528 ofthe side input assembly 529, and the back input elements 518, 510 of therear input assembly 528 in this implementation and any otherimplementation may be analog and/or digital buttons, keys, rockers(which may be a one or more position buttons or an analog joystick-typebutton), sliders, dials or touch pads used in combination with pressuresensors (such as force sensitive resistors, piezoelectric resistivesensors, and capacitive sensors), positional sensors (such as rotaryencoders, linear potentiometers and the like), miniature analog thumbjoysticks or other sensors or a combination of them.

FIG. 6 illustrates an alternative implementation of the rear inputassembly 408. Input element 610 is implemented as a conventional rotarydial (such as the Blackberry thumb wheel), which may be used to controlhorizontal and vertical cursor, scroll, and/or navigation movements. Inother implementations, other sensors as described above may be utilizeddepending upon the user age and application categories to be covered.

FIGS. 7 a-d illustrates an implementation of the hand-held inputaccelerator device as a wireless headset. As shown in FIG. 7 a, theheadset 700 may be implemented to include a thumb wheel as input element710 on a front surface 730 that allows the user to scroll left andright. The front surface 730 may also include multiple input elements722, 724, which with the input element 710, comprise a front inputassembly. The front input elements 722, 724 may be actuated inconjunction with the input element 710 to perform object selectionswhile scrolling left and right.

As shown in FIG. 7 b, a back surface 760 of the headset 700 representsone implementation of a rear input assembly. The back surface 760 mayinclude a linear sensor array 720 to facilitate vertical scrolling,selection from long lists, and navigation operations. The input elementsand active areas on the four surfaces may be substantially similar tothose as described above.

FIGS. 7 b and 7 c also illustrate a left side surface 740 and a rightside surface 750 on which is disposed a side input assembly of theheadset 700, which may be configured to include at least four sideselection elements 712, 714, 716, 718 to facilitate shifting or indexingbetween modes and text input. The selection elements may be mapped toshortcuts to variety of functions, such as dialing and answering a call.Two of the selection elements 712, 714 may be implemented forleft-handed users and the other two selection elements 716, 718 forright-handed users.

FIG. 7 d depicts the headset 700 being used as a remote control. Thatis, by integrating the remote control inputs into the headset 700, auser can remotely perform all functions of one or more host hand-heldelectronic devices using just the headset 700 that serves multiplefunctions. When talking or listening to music on a host device, such asa cellular phone, the headset 700 may be use as a regular headsetreceiving and transmitting audio signals through a speaker (not shown)and a microphone (not shown). When inputting text, the headset 700 maybe held in either or both hands and used to accelerate text entry. Whenexecuting applications on host devices, the thumb wheel 710 and thesensor array 720 may be used to navigate and scroll through long listsand icon arrays. Thus, the headset 700 with integrated remote controlmay be implemented to operate a host device, such as a cellular phone,without ever removing the host device from its storage location (e.g.,the user's pocket, jacket, backpack or purse).

Transferring Data to and from a Host Device

An accessory or input accelerator device as describe in FIGS. 1-7 abovecan be implemented to interface with various host devices to controlinput functions and/or transfer data between the accessory device andthe host devices. Data as used in this specification can includeproductivity software (e.g. word processors, messaging applications,enterprise software etc.), gaming software (e.g. card games, casinogames, driving games, first person shooter games, role playing games,etc.), visual content (e.g., wallpaper, pictures, etc.), music files(e.g., MP3 songs, MIDI files, WAV files, ringtones, alerts, etc.),multimedia files (e.g., video clips, etc.), address book entries (e.g.,names, addresses, numbers, email addresses, etc.), calendar entries,documents (e.g., presentation files, text files, etc.), computercommands, etc. The accessory device can interface with a hand-held hostdevice such as a mobile phone, an iPod, an MP3 player, a PDA, etc. Insome implementations, the accessory device can interface with othersuitable consumer electronics host devices such as a satellite radio, alap top, a desk top computer, a video game console, a television, a DVDplayer, and/or a stereo system.

In one aspect, an accessory device can be implemented as a device fordownloading, storing, executing, and transferring data. FIG. 8illustrates a functional block diagram of an accessory device 800implemented as a data platform. Similar to the input accelerators 100and 200 described in FIGS. 1-4 above, the accessory device 800 caninclude a storage unit 810 and a communication channel 814communicatively coupled through a bus 812. In such an implementation,the accessory device 800 functions as a wired or wireless storage devicefor a host device 850. In some implementations, the accessory device caninclude an optional download manager 820, and/or an optional processor802 communicatively connected to the storage unit 810 and thecommunication channel 814 through the bus 812. The accessory device 800can further include an optional input unit 822. The input unit 822 couldeither include generic input elements for navigation and operation ofthe host device 850, for example a touchstick for navigating webpages,or the input unit 822 can be custom designed for specific applications,for example a joystick for gaming applications. In the case of specificinput elements, the content stored in the storage unit 810 may be thetype of applications for which the input elements are specificallydesigned to operate. The host device 850 can include a host processor860, a communication channel 862, and a transceiver 864.

The accessory device 800 can interface with a hand-held host device 850by initiating a data link through the two communication channels 814 and862. The communication channels 814 and 862 can be compatible withvarious wired or wireless communication media 830 as described withrespect to FIGS. 1-4 above. For example, a wired connection can includea USB, firewire, serial port, parallel port, and audio jack connections.The wired connection can be achieved with a separate data cable (notshown) connecting the accessory device 800 with the host device 850. Forexample, a USB cable may be used for devices supporting USBconnectivity. Alternatively, the wired connection can be achieved bydirectly plugging the host device 850 into a compatible datainput/output port (not shown) on the accessory device 800. For example,if the host device 800 has a mini-USB port, the host device 850 canfeature a male mini USB plug that interfaces directly with the hostdevice's mini USB receptacle. Other hardware connections such asflexures or snap fit elements may be used to further secure theaccessory device 800 to the host device 850 in addition to the plug-indata connection. An adaptor (not shown) may be supplied to allow onetype of data connector (either attached to a data cable (not shown) orintegrated with the accessory device 800) to plug into a variety ofadaptors on the host device 850. A wireless connection can beimplemented as a WiFi, a Bluetooth, a WiMax, or an IR connection, orsome combination of the above. The communication channel 814 is capableof establishing a bidirectional data connection between the accessorydevice 800 and the hand-held host device 850. This data connectionallows the communication channel 814 to transmit informationbidirectionally between the accessory device 800 and the hand-held hostdevice 850.

The download manager 820 can be designed to download or receive datafrom an external source. For example, a game application can be receivedfrom the external source. An external resource can include variouscomputing and communication systems, including a personal computer 870and a wireless network 880 connected to the internet. The downloadmanager 820 can be instructed to download a selected application from aselected external source in response to a user interaction with one ormore input elements of the hand-held host device 850. For example, auser can use the user interface on the hand-held host device 850 tostart executing an application program on the host device 850. Theapplication program can provide a software user interface, such as a webbrowser and/or a file manager, to allow a user to search for and selectone or more pieces of mobile content (not shown) from various externalsources. In response to user interaction with the application program, acommand or instruction can be sent to the download manager 820 todownload or receive the selected mobile content from the selectedexternal source. Alternatively, the user can interface directly, usingthe optional input unit 822 on the accessory device, with the downloadmanager 820 to select one or more pieces of mobile content to bedownloaded from a selected external source. The download manager can beimplemented as a software program or as hardware with embeddedinstructions. The mobile content may be sent directly from the downloadmanager 820, or the download manager may elect to send an external linkvia an SMS message which is transmitted locally from the accessorydevice 800 to the host device 850 over the communication link 830. Theuser could then click on the link to download content over-the-air as amechanism for downloading content to host devices which do not supportdirect content installation via a local communications link 830, or toprovide a mechanism for procuring mobile content upgrades or softwarepatches after making the initial purchase of the content in the form ofthe accessory device itself 800.

In some implementations, an accessory device can be encapsulated orprepackaged with data. FIG. 9 depicts an accessory device 900 havingprepackaged data for transferring to a host device 950 (e.g., a mobilephone, PDA, smart phone, etc.). The accessory device 900 can include aprocessor 912, a storage unit 910, a communication channel 914, abattery 916, an input unit 918, and an output unit 922. The accessorydevice 900 can also include an optional download manager 920. Theprocessor 912 can control the input 918 and output 922 units, and managethe data connection through the communication channel 914. The inputunit 918 can include tangible input elements, such as a button, a touchpad, etc. An output unit 922 can include a display unit and LEDs. One ormore batteries 916 can be used to power the accessory device 900. Thestorage unit 910 can include a memory module, such as a hard drive or aflash ROM, or a removable storage unit (e.g., a compact flash card) forstoring the data on board. The storage unit 910 can store the mobilecontent to be delivered to the host device 950 (e.g. applicationprograms, ringtones, video clips, wallpapers). In addition, the storageunit 910 can also store one or more computer executable instructions(e.g., an application program) to be executed by the optional processor922. The communication channel 914 can be compatible with wired orwireless protocols similar to those described with reference to thecommunication channel 814 in FIG. 8.

The prepackaged accessory device 900 does not need to download data froman external source, and thus the download manager 920 may not beincluded. In some implementations, the download manager 920 can still beincluded in the prepackaged accessory device for updating theprepackaged data. The prepackaged accessory device 900 can be madeavailable either from a brick and mortar retail environment, or from awebsite, or from a catalog, or through other channels where tangibleproducts are distributed. The end user can check the compatibility ofthe host device 950 with the prepackaged accessory device 900 beforepurchasing the prepackaged device 900. Checking the compatibility caninclude determining if the prepackaged accessory device 900 supports thecommunication protocol available on the hand-held host device 950 inorder to transfer data between the two devices, as well as checking tosee if the mobile content deliverable by the accessory device 900 issupported by their host device 950.

Transferring the data stored on the prepackaged accessory device 900 tothe hand-held host device 950 can be accomplished with minimum inputfrom the user. For example, a single button or any other suitable userselectable input element (included in the input unit 918) on theprepackaged accessory device 900 can be mapped to a function designed toestablish a data link between the prepackaged accessory device 900 andthe hand-held host device 950 to prepare the two devices for datatransfer. This function for transferring data between the prepackagedaccessory device 900 and the host device 950 can execute various otherfunctions that are necessary to establish a communication link andtransfer data. For example, one or more communications-relatedapplications can be called and executed to (1) identify the availablecommunication protocol on the host device and ping the host device; (2)open a communication link; (3) determine system properties of the hostdevice 950; (4) identify the appropriate version of the selected data;(5) transmit the selected data; and (6) verify the transmission. In someimplementations, this can be accomplished by initiating a conventionalBluetooth communication link.

Mapping the function to the user input element can be accomplished usingthe mapping techniques as described with reference to FIGS. 1-7 above.FIG. 10 a illustrates one implementation of the prepackaged accessorydevice 900 with one or more user input elements (e.g., buttons) 1060.When a user activates a button 1060 that is mapped to a function fortransferring data, a communication link 1070 is established fortransferring data between the devices. The prepackaged accessory device900 can be implemented to include a variety of form factors. FIG. 10 b-iillustrate some of these form factors, possible implementations, eachdesigned to optimize the user interface for a different class ofapplications. The input unit 918 can furthermore sport a variety ofexternal form factors, illustrated in FIG. 10 b-f. For example, the formfactor can include a keyfob form factor (FIG. 10 b); a wearable jewelryitem (e.g. a ring, a watch, or a charm on a bracelet) (FIG. 10 c-e); ahand held remote control with a 2D navigational input element with anumber of buttons (FIG. 10 f); a headset with additional controlelements such as a touch stick, buttons or other types of sensors (FIG.10 g), or a special designed gaming controller for a specific class ofapplications, such as a card game with four stacks of cards, eachcontrollable using a button (FIG h) and a gaming device plugged into thebottom of the host device (FIG. 10 i) that can be used to hold andstabilize both the accessory device and the host device itself. Otherexamples for form factors include: a USB flash drive (not shown); anaccessory device with a receptacle for a hand held device (not shown; adash board cell phone holder where the cell phone may be inserted in thedevice and the device mounted to the dashboard of a car (not shown); anda phone cradle (not shown).

FIGS. 11 a-e illustrate other possible implementations for the accessorydevice 1100. FIG. 11A illustrates an accessory device 1100 rigidlycoupled to a host device 1150. The accessory device 1100 can beimplemented to store data received from an external source orprepackaged in the accessory device 1100 as described with reference toFIGS. 8-9 above. For example, a selected game application stored in theaccessory device 1100 can be pushed to the hand-held host device 1150 toinitiate game play.

In FIG. 11A, the hand-held host device 1150 is illustrated as a mobilephone, and the accessory device 1100 is illustrated to provide a rigidphysical connection to the host device 1150. The hand held host device1150 can thus be held and operated by holding the accessory device 1100with only one hand. In this implementation, the accessory device 1100presents a form factor designed to optimize one handed interaction withthe hand-held host device 1150. The form factor is also designed tostabilize the hand-held host device 1150 in a user's hand. Thestabilizing form factor of the accessory device 1100 allows the userwith a greater range of motion for the user's fingers when compared tothe hand-held host device 1150 without the accessory device 1100. Inaddition, the form factor is designed to allow the user to grasp theaccessory device 1100 in a manner optimized to prevent any of the inputelements present on the hand-held host device 1150 from being obscuredby the fingers holding the hand-held host device 1150. FIG. 11Billustrates another form factor for the accessory device 1110 designedto optimize two handed operation of the rigidly attached hand-held hostdevice 1150. A pair of handles 1112 allows the user to grasp theaccessory device 1100 using both hands as shown in FIG. 11B-C.Techniques for stabilizing an electronic device is described in acopending U.S. patent application Ser. No. 11/187,588. The contents ofthe U.S. application Ser. No. 11/187,588 is incorporated by reference inits entirety.

In some implementations, the accessory device 1100 and 1110 can beimplemented to physically and communicatively interface with the phonein various forms. FIGS. 11A-C illustrate separate accessory devices1100, 1110 that plugs rigidly into a connector at the bottom of thehand-held host device 1150. FIG. 11D illustrates a separate accessorydevice 1120 that interfaces with the hand-held host device 1150 via awirelessly connection, and FIG. 11E illustrates a separate accessorydevice 1130 communicating with the hand-held host device 1150 using awired connection. The wireless and wired connections include at leastthose methods described with reference to FIGS. 1-9 above.

By implementing one or more of these form factors, the prepackagedaccessory device 900 can be more than just a device for delivering datato a host device 950. For example, the prepackaged accessory device canalso include a customized user interface optimized for use with theparticular types of data delivered to the host device 950. For instance,a map application may be packaged with a 2D mouse cursor controller aswell as additional text and numeric input elements for entering mixedalphanumeric text in a headset form factor (FIG. 10 g). Alternatively,if the prepackaged device 900 contains gaming software, the prepackageddevice can include a thumb joystick, trim pot, or other gaming specificinterfaces such as uniquely laid out and clearly labeled buttonsdesigned to result in the best user experience (e.g., FIG. 10 f, FIG. 10h).

The data stored on the prepackaged accessory device 900 can optionallyinclude multiple versions, such as one for each computer platform (e.g.,SYMBIAN® OS and MICROSOFT® CE, or manufacturer specific firmwareversions such as NOKIA® Series 40, NOKIA® Series 60 or MOTOROLA® OS).When the prepackaged accessory device 900 establishes a data link withthe hand-held host device 950, in the process of delivering the mobilecontent, the hand-held host device 950 can be queried to determine thehost device's system properties. Once the system properties have beensent back to the prepackaged accessory device 900, the information maybe used by, the prepackaged accessory device 900 to choose anappropriate software version from its memory store to be transferred tothe hand-held host device 950. Alternatively, inquiring for the systemproperties may be skipped and an algorithm may be employed to send theselected content one version at a time until an acceptable version isreceived by the host device 950. Alternatively, the device may beclearly labeled for use with specific host devices, such that there isno risk of confusion or device incompatibility, and only one versionneeds to be stored and sent to the host device 950. In addition to thesystem properties, a general bidirectional communication link can beestablished between the prepackaged accessory device 900 and thehand-held host device 950 to request and receive various types of data.The data link established can include a wired or wireless connection asdescribed with reference to FIG. 8 above. Once a data link has beenestablished, the selected data can be transferred locally, from theprepackaged accessory device 900 to the hand-held host device 950,without going through either a PC or a cellular carrier's wirelessnetwork.

In both the accessory device 800 and prepackaged accessory device 900,the information transmitted through the communication channel 814, 914and between the accessory device 800, 900 and the hand-held host device850, 950 can vary depending on the implementation. In oneimplementation, the mobile content can be transmitted or pushed in itsentirety from the storage unit 810, 910 of the accessory device 800, 900to the hand-held host device 850, 950. For example, the mobile contentmay comprise a software application, such as a game. The pushedapplication can be installed and executed on the host device 850, 950.In such implementations, the accessory device 800, 900 transmits theselected software application to non-volatile memory (e.g., a ROM, flashmemory, a hard drive, etc.) on the hand-held host device 850, 950 to berun on the hand-held host device. In another implementation, a stubapplication may be sent and installed on the host device 850, 950, whichprovides an interface for the user to “pull” the desired content from anexternally hosted location. In yet another implementation, a link to thedesired application may be sent over the local communication channel814, 914, via an SMS text message, via pushing an address card on hostdevices which support this type of feature (e.g. Nokia Series 60 devicesor other smart phones such as the TREO™ from PalmOne or a device runninga variety of Microsoft Windows Mobile operating systems), or via pushingspecialized header files which encapsulate the link, such as a JAD (JavaApplication Descriptor) file for some mobile host devices supportingJ2ME (Java 2 Platform, Mobile Edition from Sun Microsystems). While theabove description surrounds software applications for mobile devices,other types of mobile content may be delivered in their entirety aswell, including ring tones, video clips, wallpaper and the like.

Example pseudo code for pushing content from the accessory devices 800,900 to the host device 850, 950 may be as follows:

-   -   Establish a data connection with the host device;    -   Optionally query the host device for system properties;    -   For each unit of mobile content to be delivered,        -   Choose the best version stored on board,        -   Send the content to the desired destination location on the            host device, and        -   Continue until all content is delivered

For an implementation with Bluetooth wireless connectivity, the pseudocode for establishing a data connection with the mobile handset may beas follows:

-   -   Discover all Bluetooth devices within range during a user        specified amount of time;    -   For every Bluetooth device in range,        -   Request to pair with the device,        -   Send the pairing code,        -   Wait for pairing response,        -   If timed out, continue to next device in range;    -   If device responds with correct pairing code, complete pairing,        exit loop        Subsequent to successful pairing with a Bluetooth        implementation, the mobile content may be delivered via a        variety of standard Bluetooth protocols, such as Object Exchange        (OBEX)—Object Push Profile (OPP), File Transfer Profile (FTP) or        the like.

Alternatively, in the case of applications comprising the mobile contentto be delivered, the selected application can remain stored on theaccessory device 800, 900 to be executed on the accessory device 800,900. Upon execution of the selected application on the accessory device,800, 900, only run-time data needs to be transmitted to the host device850, 950 for the duration that the application is running. For example,streaming video output, and/or a command interface, and/or otherauxiliary run time information for the selected application can betransmitted to the hand-held host device 850, 950, to be output throughone or more output units on the latter (e.g., a display unit, or thespeaker, or a vibratory feedback unit residing on the host device 850,950). In some implementations, a part of the application can beinstalled and executed on the accessory device 800, 900 and a part ofthe application can be installed and executed on the hand-held hostdevice 850, 950, the two parts running simultaneously and communicatingwith each other via a command interface implemented over thecommunications link. For example, during installation of the selectedapplication, only the executable file needs to be installed on the hostdevice 850, 950, and all remaining files (e.g., graphics, audio, GUIcontrol, etc.) can be installed on the accessory device 800, 900. Inthese implementations, the computing burden can be shared between theaccessory device 800, 900 and the host device 850, 950. In addition,regardless of where the application is executed (either on the accessorydevice 800, 900, or on the host device 850,950, or both), the functionsrelated to the executed application can be controlled using the inputelements on the accessory device 800, 900, or the input elements on thehost device 850, 950, or both. These control options can be accomplishedby using the mapping techniques as described in this specification.

The following paragraphs provide more detail on potential options fordifferent architectures for distributed mobile content execution betweenthe host device and the accessory device. A selected unit of mobilecontent can be installed and executed on the hand-held host device 1150,and the accessory device 1100, 1110 can be implemented to function as astorage or depository for storing downloaded or prepackaged data. Theaccessory device 1100, 1110 can also function as a removable hard drivefor storing other data, including images, videos, audios, and documentfiles. In such implementations, the accessory device 1100, 1110 can beused as an external memory or storage to augment the storage spaceavailable on the hand-held host device 1150, which may or may not beequipped with mini-SD cards or other removable memory units.

In an implementation where the mobile content of interest is a gameapplication, when connected to the accessory device 1100, 1110, thehand-held host device 1150 can handle execution of the selected gameapplication as though the game application was installed on thehand-held host device 1050. The game application can be downloaded andstored in a storage unit (e.g., 810, 910 in FIGS. 8-9) using varioustechniques including a PC download mechanism such as ActiveSync or viaover-the-air download from a wireless communication network provider'ssoftware downloading network. The accessory device 1100, 1110 asillustrated in FIGS. 11 a-c do not include any input elements, and thusthe input selectors/buttons/keys on the hand-held host device 1150 areused to control the game play of the selected game application.

In some implementations, an optional processor (e.g., 822, 922 in FIGS.8-9) is included in the accessory device 1100 or 1110. The processor 922can be designed to determine whether the selected data should beexecuted on the accessory device 1100, 1110 or on the hand-held hostdevice 1150. In making the determination, the processor 822, 922 canconsider various factors. For example, the processor 812, 922 candetermine the most efficient computing resource allocation based on thenumber of applications already running on the hand-held host device1150. If the game processor determines that the selected gameapplication should be executed on the accessory device 1100 or 1110.Then the selected game application is executed immediately on theaccessory device 1100, 1110. Then a communication channel (e.g., 814)transmits data related to the executed game application to the hand-heldhost device 1150 and 1150. For example, the streaming video and audiodata of the executed game data file can be transmitted to the hand-heldhost device 1150 to be displayed on the host display unit and outputtedthrough a built in speaker of the storage limit. In suchimplementations, the hand-held host device 1100 and 1150 is used only asan output device (e.g., visual display and audio output).

FIG. 12A illustrates an accessory device 1200 having at least one inputassembly 1210 rigidly connected to the hand-held host device 1250. In animplementation where the mobile content is a game application, the inputassembly 1010 can include integrated input elements such as thumbjoysticks, buttons, thumb wheels and other suitable sensors, to captureuser input and accelerate game play. Each of the input elements can beselectively mapped to one or more game functions based on the selectedgame data file executed. In addition, the input elements can beselectively mapped to other input functions based on the selected datafile application executed.

Accelerating or controlling an application (e.g., game play) of theexecuted game data file can be implemented in various ways. For example,the input elements (keys and/or buttons) on the hand-held host device1250 can be used to capture user input selections, and only the inputelements on the hand-held device 1250 can be selectively mapped to gamefunctions related to the selected game application currently miming. Apotential input element mapping can include mapping the D-pad to thegame functions for controlling direction, cursor or character movement.Techniques described in the co-pending U.S. patent application Ser. No.10/699,555 and the co-pending U.S. patent application Ser. No.11/221,412 can be applied on the existing input elements of thehand-held host device 1250 to selectively reassign/remap the inputelements to control cursor or character movement, enter text, or performother tasks. The Ser. No. 10/699,555 application and the Ser. No.11/221,412 application are incorporated by reference in their entirety.

Alternatively, the input elements 1210 on the accessory device 1200 canbe used alone to accelerate or control an application (e.g., game play).Only the input elements 1210 on the accessory device 1200 areselectively mapped to game functions related to the selected gameapplication. The input elements 1210 on the accessory device 1200 canfurther include buttons, thumb joysticks, iPOD™ ThumbWheel type stripsensors for strolling, rocker switches, thumb wheels (e.g., theBLACKBERRY™ thumb wheel), integrated sensor arrays for re-mapable keys,force-sensitive resistors in various layout arrangements, touchpads,touch sticks, trackballs, and integrated sensor arrays for gesturesensing and processing.

In some implementations, the input elements on the hand-held host device950 and the input elements 1210 on the accessory device 1200 can be usedin combination to accelerate or control game play. In such instances, acombination of the input elements on the hand-held host device 1250 andthe accessory device can be selectively mapped to game functions basedon the selected game application currently running.

In some implementations, the input elements 1210 on the accessory device1200 can be used to improve the usability of other applications (e.g.,text entry) as described in the co-pending U.S. patent application Ser.No. 11/249,009. The Ser. No. 11/249,009 application is incorporated byreference in its entirety.

In some implementations, the accessory device 1200 can be implemented tointerface with the hand-held host device 1250 using a wirelessconnection 1230 as shown in FIG. 12B. To facilitate game play, a standor holder 1220 for stabilizing the hand-held host device 1250 can beprovided. The stand 1220 is designed or configured to hold the hand-heldhost device at a position optimized for a user to view the displayscreen 1240. The stand 1220 can be implemented to allow the user toadjust the height and angle of the stand with respect to the horizontalsurface.

In some implementations, an accessory device can be implemented tobypass the game storage and delivery functionalities and be designedpurely as a game controller with no other additional functionality. Asdescribed above with reference to FIGS. 8-12B above, the accessorydevice can be configured to communicate with a hand-held host device viaa wireless or wired communication protocol. Games written to acceptanalog input from a hand-held host device (e.g. a mobile phone) can becontrolled using such a accessory device. As described above withreference to FIGS. 8-12B above, the input elements on the accessorydevice can be mapped to the game functions corresponding to the analoginput elements on the hand-held host device.

The host hand-held device 850, 950 can employ various techniques tointerpret the information transmitted from the accessory device 800, 900through the communication channel 814, 914. For example, a device driver(e.g. a Bluetooth driver or a USB driver) for managing raw data streamscan be implemented. Alternatively, a game software development kit (SDK)specially tailored to support fast development of games on the uniquegames platform disclosed herein can be implemented. Further, a genericinput/output SDK designed to harness the input and output capabilitiesof the accessory device 800, 900 configured to function as a gameplatform and/or delivery and storage device for other types ofapplications (e.g. business applications involving text entry; mediaplaying applications involving navigation of long lists; etc) can beimplemented.

The accessory device 800 can be implemented to receive data from apersonal computer 870 through the communication channel 814. Forexample, the communication channel 814 can establish a bidirectionalcommunication channel with the personal computer 870 through a wiredcommunication port such as a USB port (not shown). Alternatively, thecommunication channel 814 can connect to the personal computer 870through a wireless communication port such as Bluetooth. Oncedownloaded, the selected data is stored in the storage unit 810.

The prepackaged device 900 can also communicate with the personalcomputer 870 to update the preloaded data. For example, the preloadeddata can be a virus protection application that has a term of yearlicense period. At the end of the license period, the preloaded virusprotection application may expire automatically. Instead of purchasing anew prepackaged accessory device, the end user can be given the optionof downloading an updated application. In such implementations, the enduser can download an updated version of the application using thepersonal computer 870, and the prepackaged device 900 can becommunicatively coupled to the accessory device 900 to transfer theupdated application to the accessory device 900. The download from thepersonal computer 870 can be executed by the optional download manager920. Alternatively, the preloaded data can be a game application or aproductivity application. Software upgrades or patches may be procuredin this manner via the PC 870 to update the preloaded data after theinitial purchase has been completed. Alternatively, the user may havepurchased a plan to continue to receive new audio content (e.g.ringtones) over a period of weeks or months. This data can be downloadedfrom the PC 870 to be transferred to the host device 850 as well.

In some implementations, the accessory device 800 can be implemented toreceive data from a wireless communication network 880 through thecommunication channel 814. For example, the communication channel 814can connect to the hand-held host device 850 and access an existingwireless communication network interface unit such as a transceiver 864configured to connect to a wireless communication network. The wirelesscommunication network can include various high speed wireless broadbandnetwork systems including the Enhanced Date Rates for GSM Revolution(EDGE) network from CINGULAR® and T-MOBILE®, the 1× Evolution-DataOptimized (EVDO, EV-DO, or 1×EV-DO) from VERIZON® and SPRINT®. The datacan be downloaded from the wireless communication network provider or athird party through the internet. As previously mentioned, thismechanism provides an alternative method to obtain software patches orupgrades, new content downloaded over time, and a means to installcontent on host devices 850 that do not support direct contentinstallation from the accessory device 800.

The downloaded data is stored in the storage units 810, 910. Storing thedata in the storage units 810, 910 can involve various devices andmechanisms. The data can be hardwired in a non-volatile memory unit ofthe accessory devices 900. The data can be downloaded from the internetor a local network by accessing a communication unit of the hand-heldhost devices 850, 950 and stored in a non-volatile memory unit of theaccessory device 800. Alternatively, the accessory devices 800, 900 canbe implemented to include an input/output (I/O) slot/port (not shown)capable of interfacing with a removable storage unit (not shown). Forexample, a data cartridge or a compact flash card can be inserted intothe I/O slot/port to load new games to the accessory device 800, 900.The data cartridge can be implemented to include the following formfactors: (1) A proprietary cartridge design manufactured by a brandedhand-held content provider company, such as a hand held gaming devicemanufacturer; (2) A cartridge design with published physical andsoftware interfaces for third party development and deployment; and (3)A standard miniature flash memory device, including but not limited to:mini or micro memory SD cards, XD memory cards, SD memory cards,CompactFlash memory cards, Memory stick, or other suitable storagedevices.

Moreover, the input accelerator device described herein can beimplemented as a “Master” device in communication link with multiple“Slave” or host devices. The user can easily switch from one host deviceto another easily just by selecting the desired host device from a listof host devices that may be displayed on a screen or LC disposed on theinput accelerator device. For example, a user can selectively control ahost device, such as a cellular phone, to answer a phone call using theinput accelerator device. While talking to the caller using the headset700, the user can put the caller on hold and look up an e-mail addressfrom another host device, such as a PDA by selectively controlling thePDA. After retrieving the e-mail address, the user can return to thephone conversation by selectively switching back to controlling thecellular phone.

In any of the above implementations, active and/or passive tactilefeedback may be implemented. To provide passive tactile feedback, theinput elements of the first and/or second input assemblies may becombined with a palpable detent, such as a dome cap or dome spring sothat a user can tactilely perceive, through his fingers or thumbs,activation and/or deactivation of an input element. In oneimplementation, among others, the palpable detent may be positionedbetween the actuator and sensor components of the input elements. Toprovide active tactile feedback, one or more vibratory units or forceproducing units may be mounted in the hand-held electronic device andactivated to provide tap or index level or other information to a user.The vibratory unit may be an electric motor with an eccentric massattached to the motor's shaft, a solenoid, a variable reluctance device,a loud speaker or any other vibrator that can provide tactile feedback.A force producing unit may be a solenoid in non-vibratory mode, a motor,non-vibratory actuators or any other actuator that can produce forces. Avibratory unit and/or force producing unit may be provided for eachinput element. In that case, the vibratory unit and/or force producingunit may be mounted below the input element so that when the vibratoryunit and/or force producing unit is activated, the vibratory unit and/orforce producing unit can push out the surface of the electronic deviceto a different level or position depending on the information to becommunicated. Thus, in implementations using a pressure sensor pad ortouch-pad as the input element, a stepped array may be configured toindicate higher and higher levels of index positions across the touchpad or pressure sensor pad. The vibratory units and/or force producingunits may also be used to provide tactile feedback to indicate themomentary achievement of an objective, such as target lock in gameapplications. Tactile feedback may also be accomplished by actuators,such as a solenoid, which changes the stiffness of the input elementelectronically or pushes against the user's hand or fingers to indicatean event of interest in the software application.

The computational aspects described here can be implemented in analog ordigital electronic circuitry, or in computer hardware, firmware,software, or in combinations of them. Where appropriate, aspects ofthese systems and techniques can be implemented in a computer programproduct tangibly embodied in a machine-readable storage device forexecution by a programmable processor; and method steps can be performedby a programmable processor executing a program of instructions toperform functions by operating on input data and generating output.These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and may be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the term “information carrier” comprises a“computer-readable medium” that includes any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal,as well as a propagated machine-readable signal. The term“machine-readable signal” refers to any signal used to provide machineinstructions and/or data to a programmable processor.

The systems and techniques described above may utilize the biomechanicsof the thumb and fingers, i.e., it uses the function of opposition, thefine motor control of the fingers, and the larger range of motion andstronger actuation provided by the thumb. By using the fingers and thumbin concert, the number of taps and time needed to accomplish a givenfunction is reduced, the accuracy is improved, and the naturalprogramming inherent in the human hand replaces the training requiredfor other systems.

A number of implementations have been described. Other implementationsmay include different or additional features. For example, otherconfigurations of the one or more input elements of the front, rear andside input assemblies may be realized. Also, the input acceleratordevices described herein may have more or less than six planar orcontoured surfaces. Moreover, the number of input elements in the inputassemblies are not limited to the number of input elements described inthe implementations above. Also, the one or more input elements of theinput assemblies may be any input or selection type known to one ofskill in the art, such as keys, buttons, touch pads, other types ofpads, rockers, sliders, dials, contact sensors or other actuatorsassociated with any sensor. Each sensor associated with an actuator mayinclude digital momentary on/off switches or analog sensors, such aspressure sensors (e.g., force sensitive resistors, piezoelectric filmsensors, or capacitive sensors), or positional sensors (e.g., rotary orlinear potentiometers or encoders), or other analog sensors known tothose of ordinary skill, or accelerometers or gyroscopes. The inputassemblies may include a combination of these different types of inputor selection elements, which may be mounted in the configurations shownin the figures or imbedded within the device to permit control throughmotion of the overall device.

Further, other implementations of the hybrid auxiliary inputacceleration device are possible. People already carry around existingaccessory devices, which can be instrumented with additional sensors toprovide additional input signals to the host device for inputacceleration. Devices carried in the purse, in the wallet, or on akeychain are ideal because these devices already serve another primaryfunction, and providing input acceleration via these devices may resultin a convergent accelerator device that substantially improves userexperience without increasing the number of items that a person needs tocarry around. Like the standalone remote control implementation, theseconvergent input accelerator devices may communicate with the hostdevice wirelessly through a Bluetooth protocol or wirelessly through arough-line-of-sight infrared link. Alternatively, the convergent inputaccelerator devices may physically plug into the host device viaconnectors already present in the host device, such as a headset jack orone of many data ports described above.

In another implementation, the auxiliary input accelerator device may bea car key with a remote keyless entry device, which is a common devicethat most people carry on their keychain. The remote keyless entrydevice already has a button, a radio frequency (RF) link, and an onboard processor to transmit security information from the remote keylessentry device to a host vehicle to open a door, window, or a trunk; alterclimate control settings; or control any other vehicle functionsremotely. Most remote keyless entry devices are also small in size andpossess comfortable form factor. One or more input assemblies includingbuttons, touchpads, or continuous sensor strips may be integrated intothe remote keyless entry device to convert it into a hybrid device,which may function as an input accelerator device for a host device. Thehybrid remote keyless entry input accelerator device can communicatewith the host device using a Bluetooth protocol, a long range RFprotocol, or Infrared protocol.

In yet another implementation, the auxiliary input accelerator devicemay be a remote garage door opener. While these remote openers typicallytend to be clipped to the visor in a car, they can also be moreminiature in size and carried on a keychain. These devices can easily beaugmented to have buttons and sensors appropriate for use as an inputaccelerator device for host device.

In one implementation, the auxiliary input accelerator device may be aprogrammable radio frequency identification (RFID) keyfob. Today, manyworkers gain access to their secure workplace via an RFID keyfob. Thecircuitry in such a keyfob may be housed inside an input acceleratorwith buttons, sensor arrays and a wireless communication protocol to beused as an auxiliary input accelerator device to the host device.

In another implementation, the auxiliary input accelerator device may bea smartcard. In Europe and Asia, contactless, wireless smartcards basedon similar technologies as the RFID keyfob are increasingly being usedfor a variety of commerce transactions. For example, in District ofColumbia Metro Subway System, every terminal is smartcard enabled andpeople can pay for their subway rides by waving their wallet containinga prepaid smartcard in front of a grounded receptor. Such smartcard maybe incorporated into an input accelerator device that may be carried ona keychain. Thus, the smartcard input accelerator may be used to augmentinteractions with a host device as well as serve as the primary mode ofidentification and payment in everyday life.

In yet another implementation, the auxiliary input accelerator devicemay be a universal remote control device. A pocket size universal remotecontrol device with soft keys may be configured to control all standardhome entertainment devices such as televisions, DVD players, VHSplayers, and sound systems in addition to a host device such as acellular phone. The universal remote control device may either use thesame infrared link to communicate with home entertainment devices andwith the cellular phone, or it may communicate with the cellular phoneusing another wireless protocol, such as Bluetooth protocol.

In yet another implementation, the auxiliary input accelerator devicemay be a digital wristwatch incorporating the functionality of the inputaccelerator device. Digital wrist watches, especially running orexercise watches, typically have a digital display and a number ofbuttons for tracking lap times, heart rate and other importantbiostatistics. They also typically have a larger surface area thantypical wrist watches. These watches may readily be programmed andretrofitted with optional additional sensor arrays to be used as aninput accelerator for the host device.

In one implementation, the auxiliary input accelerator device may be anMP3 device such as an iPod. While multimedia content delivery on themobile platform is becoming a norm, currently many people still carry aseparate MP3 player for listening to music. The iPod or other MP3players already incorporate sensors and buttons, which may be easilyaugmented to be used as the input accelerator device for interfacingwith the host device, such as a cellular phone. The MP3 player mayconnect to the host device using an existing or added wireless protocol,such as Bluetooth.

In one implementation, the auxiliary input accelerator device may be anultimate wireless converged remote controller device. Some or all of theabove implementations may be combined into a single converged inputaccelerator device, The form factor of the device may be a keyfob formfactor to go on a key chain, a wrist watch form factor to go on thewrist, or any other miniature form factor that facilitate portability.The ultimate converged remote controller device may perform all of thefollowing functions in addition to controlling any additional devicespossessing a short or long range wireless link. The ultimate convergedremote controller device may function as an input accelerator forcellular phones, with keys and optional sensor arrays; a remote keylessentry device with a long range RF circuitry; a remote garage dooropener; a RFID keyfob with a short range passive RF circuitry; asmartcard for identification and commerce with a short range passive RFcircuitry; an universal remote controller device for home entertainmentsystems; and/or any other auxiliary functions people may want toincorporate.

Moreover, the methods to provide data input, device control or gamecontrol may be performed in a different order and still achievedesirable results. Accordingly, other implementations are within thescope of the following claims.

1. An accessory device for interacting with a hand-held host device, theaccessory device comprising: an input assembly including a plurality ofinput elements, the input assembly being operable to generate inputsignals corresponding to user input captured at one or more of theplurality of input elements, the plurality of input elements includingan input element disposed on a first surface of the accessory device andan input element disposed on a second surface of the accessory device; adisplay operable to display output data to a user; and a communicationschannel operable to transmit to the host device data corresponding tothe input signals and to receive from the host device data correspondingto the output data; wherein the hand-held host device is operable toexecute a plurality of software applications and an input element of theinput assembly is operable to be mapped to control one or more functionsof at least one of the plurality of software applications.
 2. Theaccessory device of claim 1 wherein the display is disposed on a thirdsurface of the accessory device.
 3. The accessory device of claim 1wherein a first input element is operable to control a mappingapplication to change a mapping of a second input element from a firstto a second function of a host application.
 4. The accessory device ofclaim 1 wherein the accessory device comprises a form factor adapted tobe coupled to a wrist band.
 5. The accessory device of claim 4 whereinthe form factor is a digital watch form factor.
 6. The accessory deviceof claim 1 wherein the communication channel is adapted to transmit andreceive graphical user interface (“GUI”) data to and from the hand-heldhost device.
 7. The accessory device of claim 6 wherein the GUI datacorresponds to an Internet browsing application.
 8. A method forinteracting with a hand-held host device using an accessory device, themethod comprising: generating input signals corresponding to user inputcaptured at one or more of a plurality of input elements of an inputassembly, the plurality of input elements including an input elementdisposed on a first surface of the accessory device and an input elementdisposed on a second surface of the accessory device; displaying outputdata to a user; and transmitting from the accessory device to the hostdevice data corresponding to the input signals and receiving from thehost device data corresponding to the output data; wherein the hand-heldhost device is operable to execute a plurality of software applicationsand an input element of the input assembly is operable to be mapped tocontrol one or more functions of at least one of the plurality ofsoftware applications.
 9. The method of claim 8 wherein the display isdisposed on a third surface of the accessory device.
 10. The method ofclaim 8 further comprising enabling a first input element to control amapping application to change a mapping of a second input element from afirst to a second function of a host application.
 11. The method ofclaim 8 wherein the accessory device comprises a form factor adapted tobe coupled to a wrist band.
 12. The method of claim 11 wherein the formfactor is a digital watch form factor.
 13. The method of claim 8 whereingraphical user interface (“GUI”) data is transmitted between theaccessory device and the hand-held host device.
 14. The method of claim13 wherein the GUI data corresponds to an Internet browsing application.15. An accessory device for interacting with a hand-held host device,the accessory device comprising: input means for generating inputsignals, the input means being disposed on first and second surfaces ofthe accessory device; display means for displaying output data to auser; and communication means for transmitting data corresponding to theinput signals to the host device and for receiving data corresponding tothe output data from the host device; wherein the hand-held host deviceis operable to execute a plurality of software applications and theinput means includes means operable to be mapped for controlling one ormore functions of at least one of the plurality of softwareapplications.
 16. The accessory device of claim 15 wherein the displaymeans is disposed on a third surface of the accessory device.
 17. Theaccessory device of claim 15 wherein a first input means is forcontrolling a mapping application to change a mapping of a second inputmeans from a first to a second function of a host application.
 18. Theaccessory device of claim 15 wherein the accessory device comprises formfactor means.
 19. The accessory device of claim 18 wherein the formfactor means includes means for disposing the accessory device on awristband.